@@ -237,5 +237,20 @@ class ScenarioImport |
||
237 | 237 |
yield 'propagate_immediately', propagate_immediately, boolean if self['propagate_immediately'].present? && propagate_immediately.requires_merge? |
238 | 238 |
yield 'disabled', disabled, boolean if disabled.requires_merge? |
239 | 239 |
end |
240 |
+ |
|
241 |
+ # Unfortunately Ruby 1.9's OpenStruct doesn't expose [] and []=. |
|
242 |
+ unless instance_methods.include?(:[]=) |
|
243 |
+ def [](key) |
|
244 |
+ self.send(sanitize key) |
|
245 |
+ end |
|
246 |
+ |
|
247 |
+ def []=(key, val) |
|
248 |
+ self.send("#{sanitize key}=", val) |
|
249 |
+ end |
|
250 |
+ |
|
251 |
+ def sanitize(key) |
|
252 |
+ key.gsub(/[^a-zA-Z0-9_-]/, '') |
|
253 |
+ end |
|
254 |
+ end |
|
240 | 255 |
end |
241 | 256 |
end |